#pragma once

namespace LSH
{

class Rander : public Singleton<Rander>
{
public:
    Rander(void);
    ~Rander(void);
public:
    BOOL create(HWND hwnd, BOOL windowed, UINT width, UINT height, UINT depth);
    void shutDown(); 
public:
    IDirect3D9*         getD3D() { return _pD3d; };
    IDirect3DDevice9*   getD3DDevice() { return _pD3dDevice; };

protected:
    HWND                _hwnd;

    BOOL				_windowed;
    UINT				_width;
    UINT				_height;
    UINT				_depth;

    IDirect3D9*         _pD3d;                      
    IDirect3DDevice9*	_pD3dDevice;

    D3DCAPS9			    _deviceCaps;
    D3DPRESENT_PARAMETERS	_devicePresentParam;	
};

} // LSH
